// promise 把 回调 赶出了历史舞台
// 那 promise 异步同步化的缺点呢？

// Promise
function f1() {
    return new Promise((resolve) => {
        console.log('f1');
        setTimeout(resolve, 2000);
    })
}
function f2() {
    return new Promise((resolve) => {
        console.log('f2');
        setTimeout(resolve, 2000);
    })
}
function f3() {
    return new Promise((resolve) => {
        console.log('f3');
        setTimeout(resolve, 2000);
    })
}
function f4() {
    return new Promise((resolve) => {
        console.log('f4');
        setTimeout(resolve, 2000);
    })
}
function f5() {
    return new Promise((resolve) => {
        console.log('f5');
        setTimeout(resolve, 2000);
    })
}

// 一点点繁琐
// es7 提出 能不能 thenable 太多
f1()
    .then(() => {
        // 返回一个 新的 promise 实例，保证继续 then 下去
        return f2();
    })
    .then(() => {
        return f3();
    })
    .then(() => {
        return f4();
    })
    .then(() => {
        return f5();
    })